package sctu.edu.java.year2016.team07.huangsuixin.day20160610.chapter12_2;

import java.io.*;

/**
 * Created by Huang Suixin on 2016/6/10.
 */

/**
 * 2.编写程序，使用字符输入、输出流读取文件，将一段文字加密后存入文件，然后再读取，
 * 并将加密前与加密后的文件输出。
 */
public class XorEncrypt {
    public final byte XOR_CONST = 0x12;//异或运算加密

    //输入文件进行加密，将加密后的文件输出，解密也是如此
    public void xorEn(File src, File des) throws IOException {
        if (src.exists()) {
        } else {
            System.out.println("文件不存在！");
            return;
        }
        FileInputStream fis = new FileInputStream(src);
        FileOutputStream fos = new FileOutputStream(des);
        byte[] bs = new byte[1024];
        int len = 0;
        if ((len = fis.read(bs)) != -1) {
            for (int i = 0; i < len; i++) {
                bs[i] ^= XOR_CONST;//加密，a^b=c,则c^b=a ;
            }
        }
        fos.write(bs, 0, len);
        fos.close();
        fis.close();
    }
}
